Proxmox VE 9.2: Cómo Activar el Balanceo Dinámico de Carga en tu Clúster y Qué Cambia Frente a VMware

Proxmox VE 9.2: Cómo Activar el Balanceo Dinámico de Carga en tu Clúster y Qué Cambia Frente a VMware

por Raúl Unzué

DRS en Proxmox

Cuando montas un clúster de Proxmox, una de las primeras cosas que aprendes es que repartir las máquinas virtuales (VMs) entre nodos no siempre significa repartir la carga real.

Puedes arrancar todas tus VMs perfectamente equilibradas entre dos servidores y, unas horas después, encontrarte con que uno de ellos está al 80% de CPU mientras el otro apenas se inmuta. Hasta ahora, corregir ese desequilibrio era una tarea manual o requería apoyarse en herramientas externas.

Con Proxmox VE 9.2 eso empieza a cambiar.

La hoja de ruta oficial de la versión 9.2 incorpora una de las funcionalidades más esperadas por quienes administramos clústeres: el balanceo dinámico de carga mediante el Cluster Resource Scheduler (CRS). Dicho de forma sencilla, Proxmox podrá detectar automáticamente cuándo un nodo está más cargado que otro y mover máquinas virtuales para repartir mejor los recursos.

Si tienes un laboratorio doméstico, un entorno de pruebas o una pequeña infraestructura empresarial con dos o tres nodos, esta es probablemente una de las novedades más interesantes de la versión.

En esta guía vamos a ver qué cambia exactamente, cómo funciona el nuevo modo dinámico y cómo configurarlo en un clúster de dos / tres nodos como el que utilizo en mi laboratorio.

Un apunte...los contenedores LXC no se mueven en caliente, se reinician de momento.

Geeknetic Proxmox VE 9.2: Cómo Activar el Balanceo Dinámico de Carga en tu Clúster y Qué Cambia Frente a VMware 1

Qué es el Cluster Resource Scheduler (CRS)

El Cluster Resource Scheduler o CRS es el componente encargado de decidir dónde deben ejecutarse las máquinas virtuales dentro de un clúster.

Hasta ahora, el CRS de Proxmox era bastante conservador. Su función principal consistía en elegir el mejor nodo disponible cuando una VM arrancaba o cuando era necesario migrarla.

Una vez tomada esa decisión, la VM permanecía allí indefinidamente.

Esto funciona bien cuando las cargas son relativamente estables, pero tiene limitaciones evidentes cuando el consumo de recursos cambia a lo largo del día.

Un ejemplo muy habitual:

  • Nodo A ejecuta tres VMs.
  • Nodo B ejecuta otras tres.
  • Todo parece equilibrado.

Sin embargo, una de las VMs del nodo A comienza una tarea intensiva de procesamiento, una copia masiva de datos o un proceso de compilación.

De repente, el nodo A queda saturado mientras el nodo B sigue prácticamente vacío.

Hasta Proxmox 9.2, el CRS no hacía nada ante esta situación.

Con el nuevo modo dinámico sí puede intervenir. Una funcionalidad que para los que estamos en nuestro día a día con virtualización, llevamos esperando, para que Proxmox incorpore una solución que se acerque al DRS (Distributed Resource Scheduler) de VMware.

Geeknetic Proxmox VE 9.2: Cómo Activar el Balanceo Dinámico de Carga en tu Clúster y Qué Cambia Frente a VMware 2

Los Cuatro Modos de Balanceo Disponibles en Proxmox VE 9.2

Uno de los aspectos que más confusión puede generar es que el CRS dispone ahora de varios algoritmos distintos.

Cada uno tiene una filosofía diferente.

Default (Basic)

Es el modo predeterminado.

En realidad actúa como una configuración básica pensada para la mayoría de instalaciones y utiliza criterios simples para decidir dónde colocar nuevos recursos.

Para muchos homelabs pequeños puede ser suficiente, especialmente cuando la carga de trabajo es estable y predecible.

  • Su principal ventaja es la simplicidad.
  • Su principal inconveniente es que no tiene en cuenta el comportamiento real de las máquinas virtuales una vez están en producción.

Basic (Resource Count)

Este modo realiza el reparto basándose principalmente en el número de recursos ya existentes en cada nodo.

La idea es bastante sencilla:

Si un nodo tiene menos máquinas virtuales o contenedores asignados, será el candidato preferente para recibir nuevos workloads.

Es un enfoque fácil de entender y con un coste computacional mínimo.

El problema es evidente.

Cinco máquinas virtuales pequeñas no equivalen necesariamente a cinco máquinas virtuales que consumen toda la CPU disponible.

Por eso este modo puede producir distribuciones aparentemente equilibradas pero muy descompensadas en términos reales de utilización.

Static Load

Aquí empezamos a hablar de un balanceo más inteligente.

El scheduler analiza la carga disponible en cada nodo antes de decidir dónde colocar una máquina virtual.

En lugar de limitarse a contar recursos, intenta determinar cuál es el servidor que dispone de más capacidad libre en ese momento.

La decisión suele ser bastante acertada durante el arranque o la migración inicial.

Sin embargo, tiene una limitación importante.

La evaluación se realiza únicamente en el momento de la colocación.

Si dos horas después una máquina virtual comienza a consumir mucha CPU o memoria, el CRS no reaccionará automáticamente.

Dynamic Load (La Gran Novedad de Proxmox 9.2)

Este es el modo que realmente marca la diferencia.

En lugar de realizar una evaluación puntual, el scheduler monitoriza continuamente el estado del clúster y analiza la carga real de los nodos.

Cuando detecta que existe un desequilibrio importante entre servidores, puede iniciar migraciones automáticas para redistribuir las máquinas virtuales y recuperar el equilibrio.

Imagina un clúster formado por dos nodos:

  • nuc
  • minis2

    Geeknetic Proxmox VE 9.2: Cómo Activar el Balanceo Dinámico de Carga en tu Clúster y Qué Cambia Frente a VMware 3

Por la mañana ambos servidores están trabajando al 30% de utilización.

Todo parece correcto.

Sin embargo, una máquina virtual alojada en el nodo nuc comienza un proceso intensivo de compilación o procesamiento de datos y dispara el consumo de CPU hasta el 90%.

En versiones anteriores, esa situación permanecería igual hasta que el administrador actuara manualmente.

Con Dynamic Load, el CRS puede detectar el desequilibrio y mover otra carga de trabajo al segundo nodo para repartir mejor los recursos disponibles.

Es exactamente el comportamiento que muchos administradores llevaban años esperando.

Geeknetic Proxmox VE 9.2: Cómo Activar el Balanceo Dinámico de Carga en tu Clúster y Qué Cambia Frente a VMware 4

Adicionalmente, existen dos opciones que podemos activar según el modo elegido:

"Use CRS to select the least loaded node when starting an HA resource"

Esto es el modo estático. Solo entra en juego en el momento del arranque de un guest gestionado por HA.

Cuando una VM de HA arranca (ya sea porque la enciendes tú, porque el HA Manager la recupera tras un fallo de nodo, o porque se reinicia), el CRS mira los dos nodos en ese instante y la coloca en el que tiene menos carga en ese preciso momento.

Una vez colocada, no vuelve a tocarla. Si cinco minutos después ese nodo se satura, el CRS no hace nada. El balanceo fue puntual, en el momento de la decisión de colocación, y ya está. Es básicamente una colocación inteligente, no un reequilibrio continuo.

"Automatically rebalance HA resources"

Esto es el modo dinámico, la novedad de 9.2.

Aquí el CRS no espera a que arranque nada. Está mirando continuamente las métricas reales de CPU y RAM de todos los nodos. Si detecta que hay un desequilibrio que supera el umbral configurado, es decir, que un nodo está bastante más cargado que el otro, lanza migraciones en vivo de guests HA de forma automática para compensarlo.

No es reactivo a un evento puntual, sino a una situación sostenida de desequilibrio.

En resumen:

  Cuándo actúa Qué hace
Modo estático Al arrancar un guest HA Lo coloca en el nodo menos cargado en ese momento
Modo dinámico Continuamente Migra guests HA automáticamente si el clúster está desequilibrado

Lo más habitual es usar el dinámico si quieres "olvidarte" del balanceo, y el estático si quieres una colocación inteligente pero sin que Proxmox mueva VMs por su cuenta mientras están corriendo.

Geeknetic Proxmox VE 9.2: Cómo Activar el Balanceo Dinámico de Carga en tu Clúster y Qué Cambia Frente a VMware 5

Dynamic Load vs VMware DRS

La comparación con VMware es inevitable.

Durante mucho tiempo, una de las ventajas más claras de VMware frente a Proxmox era precisamente DRS.

DRS lleva años analizando continuamente la utilización del clúster y realizando migraciones automáticas mediante vMotion.

La llegada de Dynamic Load reduce considerablemente esa distancia.

Característica Proxmox Dynamic Load VMware DRS
Balanceo automático
Migración automática
Análisis continuo
Integrado sin coste adicional No
Configuración de agresividad
Historial avanzado y analítica Limitado Muy avanzado
Madurez de la plataforma Nueva funcionalidad Muy madura

VMware sigue teniendo ventaja en observabilidad, métricas avanzadas y años de desarrollo.

Sin embargo, para muchos entornos pequeños y medianos la diferencia práctica ya no es tan grande como antes.

Cómo Activar Dynamic Load en un Clúster de Dos Nodos

La configuración es bastante sencilla.

Paso 1: Actualizar a Proxmox VE 9.2

Antes de nada, todos los nodos deben ejecutar la misma versión. 

Comprueba la versión instalada:

pveversion

Geeknetic Proxmox VE 9.2: Cómo Activar el Balanceo Dinámico de Carga en tu Clúster y Qué Cambia Frente a VMware 6

Si no sabéis como subir a la nueva versión os dejamos una guía.

Paso 2: Verificar el Estado del Clúster

Comprueba que ambos nodos están operativos:

pvecm status

Debes verificar:

  • Quorum activo
  • Nodos online
  • Sin errores de comunicación

Geeknetic Proxmox VE 9.2: Cómo Activar el Balanceo Dinámico de Carga en tu Clúster y Qué Cambia Frente a VMware 7

Paso 3: Revisar las Máquinas Virtuales Gestionadas por HA

El nuevo balanceo dinámico está orientado principalmente a recursos gestionados por High Availability.

Por tanto, merece la pena revisar qué máquinas virtuales forman parte del stack HA y cuáles no.

En un clúster pequeño suele tener sentido incluir únicamente las cargas más importantes.

Geeknetic Proxmox VE 9.2: Cómo Activar el Balanceo Dinámico de Carga en tu Clúster y Qué Cambia Frente a VMware 8

Paso 4: Configurar el Scheduler

Desde la interfaz web accede a Datacenter -> Options -> Cluster Resource Scheduler:

Geeknetic Proxmox VE 9.2: Cómo Activar el Balanceo Dinámico de Carga en tu Clúster y Qué Cambia Frente a VMware 9

Aquí encontrarás los cuatro modos disponibles:

  • Default (Basic)
  • Basic (Resource Count)
  • Static Load
  • Dynamic Load

Geeknetic Proxmox VE 9.2: Cómo Activar el Balanceo Dinámico de Carga en tu Clúster y Qué Cambia Frente a VMware 10

Selecciona Dynamic Load y guarda la configuración.

Geeknetic Proxmox VE 9.2: Cómo Activar el Balanceo Dinámico de Carga en tu Clúster y Qué Cambia Frente a VMware 11

Paso 5: Ajustar la Sensibilidad

Una vez activado, es recomendable revisar los parámetros relacionados con los umbrales de desequilibrio.

Si el scheduler es demasiado agresivo podría generar migraciones innecesarias.

Si es demasiado conservador apenas actuará.

Mi recomendación para un clúster de dos nodos es empezar con la configuración por defecto y observar el comportamiento durante varios días antes de realizar ajustes.

Paso 6: Supervisar las Decisiones del Scheduler

Para entender cómo está funcionando el sistema es recomendable revisar periódicamente los logs del clúster.

Esto permite comprobar cuándo se producen migraciones y qué decisiones está tomando el CRS.

Especialmente durante las primeras semanas de uso, esta información ayuda mucho a ajustar la configuración.

¿Merece la pena la función Dynamic Load?

Para mí, sí.

Si tienes un único servidor, evidentemente no aporta nada.

Pero en cuanto trabajas con dos o más nodos, Dynamic Load permite aprovechar mejor el hardware disponible y reduce la necesidad de realizar migraciones manuales cuando aparecen picos de carga inesperados.

No sustituye completamente a las capacidades más avanzadas de VMware DRS, pero sí elimina una de las diferencias históricas más importantes entre ambas plataformas.

Y lo mejor es que llega integrado en Proxmox, sin licencias adicionales, sin productos externos y sin complicaciones.

Proxmox lleva varios años reduciendo distancias frente a soluciones comerciales mucho más caras, y el nuevo Dynamic Load es probablemente una de las pruebas más claras de ello.

Fin del Artículo. ¡Cuéntanos algo en los Comentarios!

Redactor del Artículo: Raúl Unzué

Raúl Unzué

Soy un apasionado de la virtualización con más de 20 años de experiencia, especializado en soluciones como VMware(premio vExpert y vExpert Pro desde 2013), Proxmox e Hyper-V. Durante mi carrera, he ayudado a empresas a optimizar sus infraestructuras TI mientras comparto mis conocimientos como redactor IT. Mi objetivo es traducir lo complejo en algo práctico y accesible, combinando teoría con experiencia real. Si te interesa la virtualización, las herramientas TI o simplemente aprender algo nuevo, espero ayudarte con mis artículos.